package com.gov.ec.rsv.servicio;

import com.gov.ec.rsv.dao.CrudDAO;
import com.gov.ec.rsv.interfaces.IMenuServicio;
import com.gov.ec.rsv.modelo.Menu;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.persistence.Query;
import org.apache.log4j.Logger;

/**
 * La Clase MenuServicio.
 *
 * @author 
 */
/**
 * @author 
 *
 */
@Stateless
@LocalBean
public class MenuServicio extends CrudDAO implements IMenuServicio {

    /** La constante localLogger. */
    private static final Logger localLogger = Logger.getLogger(MenuServicio.class);

   	/* (non-Javadoc)
	 * @see com.gov.ec.rsv.servicio.IMenuServicio#obtenerMenuRol(java.lang.Integer)
	 */
	@SuppressWarnings("unchecked")
	@Override
	public List<Menu> obtenerMenuRol(final Integer idUsu) {
        List<Menu> lista = new ArrayList<Menu>();
        try {
            Query query = super.em.createQuery("select distinct(o.menu) from Rol as o" +
            		" where o.usuario.idUsuario = ?1");
            query.setParameter(1, idUsu);
            lista.addAll(query.getResultList());
        } catch (Exception e) {
            localLogger.error(e);
        }
        return lista;
    }
    
   
     
    
//    public List<Menu> obtenerSubMenuRol(final Long idRol, final Long idMenu) {
//        List<Menu> lista = new ArrayList<Menu>();
//        try {
//            Query query = super.em.createQuery("select o from Menu as o "
//                    + "where o.tpagina.idPagina in ( "
//                    + "select a.tpagina.idPagina from Tpaginarol as a "
//                    + "where a.trol.idRol = ?1 ) and o.tmenu.idMenu = ?2 "
//                    + "order by o.orden");
//            query.setParameter(1, idRol);
//            query.setParameter(2, idMenu);
//            lista.addAll(query.getResultList());
//        } catch (Exception e) {
//            localLogger.error(e);
//        }
//        return lista;
//    }
    
}
